package com.yida.gwj.expend.outside.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;

/**
 * 申请报告DTO
 *
 * @author liangp
 * @date 2023/02/23
 */
@ApiModel(description = "申请报告DTO")
public class ApplicationReportDTO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主键")
    private Long attachmentId;

    @ApiModelProperty(value = "社区名称")
    private String communityName;

    @ApiModelProperty(value = "开发企业名称")
    private String developmentEnterpriseName;

    @ApiModelProperty(value = "地址")
    private String address;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "项目竣工时间(endtime)")
    private Date completedTime;

    @ApiModelProperty(value = "总栋数")
    private Integer totalBuild;

    @ApiModelProperty(value = "建筑总面积")
    private BigDecimal totalSize;

    @ApiModelProperty(value = "业主总户数")
    private Integer totalOwner;

    @ApiModelProperty(value = "维修项目")
    private String maintenanceItems;

    @ApiModelProperty(value = "维修原因")
    private String maintenanceReason;

    @ApiModelProperty(value = "工程预算金额(gongchengyusuanjine)")
    private BigDecimal projectBudgetAmount;

    @ApiModelProperty(value = "申请人员名称")
    private String applyName;
    @ApiModelProperty(value = "竣工时间")
    private LocalDate completionTime;

    @ApiModelProperty(value = "公示开始时间")
    private LocalDate publicityStartTime;

    @ApiModelProperty(value = "公示结束时间")
    private LocalDate publicityEndTime;

    @ApiModelProperty(value = "位置信息")
    private String positionInformation;

    @ApiModelProperty(value = "签署报告时间")
    private LocalDate signTime;

    @ApiModelProperty(value = "已勘查业主人数")
    private Integer exploredOwnerNumber;

    @ApiModelProperty(value = "申请单位")
    private String applicationUnitName;

    public Long getAttachmentId() {
        return attachmentId;
    }

    public void setAttachmentId(Long attachmentId) {
        this.attachmentId = attachmentId;
    }

    public LocalDate getCompletionTime() {
        return completionTime;
    }

    public void setCompletionTime(LocalDate completionTime) {
        this.completionTime = completionTime;
    }

    public LocalDate getPublicityStartTime() {
        return publicityStartTime;
    }

    public void setPublicityStartTime(LocalDate publicityStartTime) {
        this.publicityStartTime = publicityStartTime;
    }

    public LocalDate getPublicityEndTime() {
        return publicityEndTime;
    }

    public void setPublicityEndTime(LocalDate publicityEndTime) {
        this.publicityEndTime = publicityEndTime;
    }

    public String getPositionInformation() {
        return positionInformation;
    }

    public void setPositionInformation(String positionInformation) {
        this.positionInformation = positionInformation;
    }

    public String getCommunityName() {
        return communityName;
    }

    public void setCommunityName(String communityName) {
        this.communityName = communityName;
    }

    public String getDevelopmentEnterpriseName() {
        return developmentEnterpriseName;
    }

    public void setDevelopmentEnterpriseName(String developmentEnterpriseName) {
        this.developmentEnterpriseName = developmentEnterpriseName;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Date getCompletedTime() {
        return completedTime;
    }

    public void setCompletedTime(Date completedTime) {
        this.completedTime = completedTime;
    }

    public Integer getTotalBuild() {
        return totalBuild;
    }

    public void setTotalBuild(Integer totalBuild) {
        this.totalBuild = totalBuild;
    }

    public BigDecimal getTotalSize() {
        return totalSize;
    }

    public void setTotalSize(BigDecimal totalSize) {
        this.totalSize = totalSize;
    }

    public Integer getTotalOwner() {
        return totalOwner;
    }

    public void setTotalOwner(Integer totalOwner) {
        this.totalOwner = totalOwner;
    }

    public String getMaintenanceItems() {
        return maintenanceItems;
    }

    public void setMaintenanceItems(String maintenanceItems) {
        this.maintenanceItems = maintenanceItems;
    }

    public String getMaintenanceReason() {
        return maintenanceReason;
    }

    public void setMaintenanceReason(String maintenanceReason) {
        this.maintenanceReason = maintenanceReason;
    }

    public BigDecimal getProjectBudgetAmount() {
        return projectBudgetAmount;
    }

    public void setProjectBudgetAmount(BigDecimal projectBudgetAmount) {
        this.projectBudgetAmount = projectBudgetAmount;
    }

    public String getApplyName() {
        return applyName;
    }

    public void setApplyName(String applyName) {
        this.applyName = applyName;
    }

    public LocalDate getSignTime() {
        return signTime;
    }

    public void setSignTime(LocalDate signTime) {
        this.signTime = signTime;
    }

    public Integer getExploredOwnerNumber() {
        return exploredOwnerNumber;
    }

    public void setExploredOwnerNumber(Integer exploredOwnerNumber) {
        this.exploredOwnerNumber = exploredOwnerNumber;
    }

    public String getApplicationUnitName() {
        return applicationUnitName;
    }

    public void setApplicationUnitName(String applicationUnitName) {
        this.applicationUnitName = applicationUnitName;
    }

    @Override
    public String toString() {
        return "ApplicationReportDTO{" +
                "attachmentId=" + attachmentId +
                ", communityName='" + communityName + '\'' +
                ", developmentEnterpriseName='" + developmentEnterpriseName + '\'' +
                ", address='" + address + '\'' +
                ", completedTime=" + completedTime +
                ", totalBuild=" + totalBuild +
                ", totalSize=" + totalSize +
                ", totalOwner=" + totalOwner +
                ", maintenanceItems='" + maintenanceItems + '\'' +
                ", maintenanceReason='" + maintenanceReason + '\'' +
                ", projectBudgetAmount=" + projectBudgetAmount +
                ", applyName='" + applyName + '\'' +
                ", completionTime=" + completionTime +
                ", publicityStartTime=" + publicityStartTime +
                ", publicityEndTime=" + publicityEndTime +
                ", positionInformation='" + positionInformation + '\'' +
                ", signTime=" + signTime +
                ", exploredOwnerNumber=" + exploredOwnerNumber +
                ", applicationUnitName='" + applicationUnitName + '\'' +
                '}';
    }
}
